package com.terrier.utils
{

    /**
     * WxFunctionUtil 是一个静态类,提供有关于Function操作的实用的静态函数
     * @author Jarvis.weng
     */
    public class WxFunctionUtility
    {
        /**
         * 安全函数调用
         * @param func 即将被调用的函数. 如果参数为空,则直接返回
         * @param thisArg 指定函数体内 <code>this</code>指向的对象
         * @param args 函数的参数
         * @return
         */
        public static function safeCall(func:Function, thisArg:* = null, ... args):*
        {
            if (func == null)
            {
                return null;
            }
            return func.apply(thisArg, args);
        }

        /**
         * 安全函数调用
         * @param func 即将被调用的函数. 如果参数为空,则直接返回
         * @param thisArg 指定函数体内 <code>this</code>指向的对象
         * @param args 函数的参数数组
         * @return
         */
        public static function safeApply(func:Function, thisArg:* = null, args:Array = null):*
        {
            if (func == null)
            {
                return null
            }
            return func.apply(thisArg, args);
        }
    }
}
